package ec.edu.ups.cidi.siia.plamdep.utils;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Utils 
{
		//////////////////////////////////Utilidades Consola
		public static String leerFromConsola(String mensaje)
		{
		
		InputStreamReader leer = new InputStreamReader(System.in);
		BufferedReader buff = new BufferedReader(leer);
		System.out.print(mensaje+": ");
		String texto="";
		try {
		texto = buff.readLine();
		} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		}
		return texto;
		
		}
		////////////////////////////////////Utilidades Memoria
		/**
		 * Forza el paso de Garbage Collector para liberar espacio de la memoria RAM
		 */
		public static void garbageCleaner()
		{
			// OperatingSystemMXBean operatingSystemMXBean = ManagementFactory.getOperatingSystemMXBean();
			  /*for (Method method : operatingSystemMXBean.getClass().getDeclaredMethods()) 
			  { method.setAccessible(true); 
			  if (method.getName().startsWith("get") && Modifier.isPublic(method.getModifiers()))
			  { 
				  Object value; 
				  try 
				  { 
					  value = method.invoke(operatingSystemMXBean);
				  } catch (Exception e) { value = e; } 
				   System.out.println(method.getName() + " = " + value); 
			  } // if 
			  } // for
			  */
			 Runtime garbage = Runtime.getRuntime();
			 long memini=garbage.freeMemory()/1024;
			 garbage.gc();
			 System.gc();
		     long memfin=garbage.freeMemory()/1024;
		     double liberado=Math.abs(memfin-memini)/1024;
		     Log.log(null,Log.MOD_UTILS, Log.LEVEL_MSG, Log.class,"Ejecutando Garbage Collector... Total Liberado: "+ + liberado+"MB" );
		}
		


}
